from django.db import models

# Create your models here.
#用户表
class User(models.Model):
    NO = 1
    OFF = 2
    STATUS_CHOICES = {
        (NO,'正常'),
        (OFF,'锁定')
    }
    class Meta:
        verbose_name_plural = '用户列表'
    user_name = models.CharField(max_length=30,unique=True,verbose_name="用户名")
    pwd = models.CharField(max_length=200,verbose_name="密码")
    status = models.IntegerField(verbose_name="状态",choices=STATUS_CHOICES,default=NO)
    phone = models.CharField(max_length=30,unique=True,verbose_name="手机号")


#收货地址
class Address(models.Model):
    class Meta:
        verbose_name_plural = '收货地址'
    user = models.ForeignKey("User",on_delete=models.CASCADE)
    user_name = models.CharField(max_length=20)
    phone = models.CharField(max_length=30,unique=True)
    address = models.CharField(max_length=200,null=False)
    is_default = models.IntegerField()
    def __str__(self):
        return self.address + "(" + self.user_name + "收，联系电话："+ self.phone

#商品表
class Goods(models.Model):
    class Meta:
        verbose_name_plural = '商品表'
    good_name = models.CharField(max_length=30)
    img_url = models.ImageField(upload_to='img')
    price = models.IntegerField()
    intro = models.TextField()
    type = models.ManyToManyField("Type",null=True)
    K = "克"
    J = "斤"
    G = "个"
    UNIT_CHOICES = {
        (K , "克"),
        (J , "斤"),
        (G , "个")
    }
    unit = models.CharField(choices=UNIT_CHOICES,default="克",max_length=30)
    object = models.Manager()
    def __str__(self):
        return self.good_name

#商品分类
class Type(models.Model):
    class Meta:
        verbose_name_plural = '商品分类'
    type_name = models.CharField(max_length=30,unique=True)
    def __str__(self):
        return self.type_name

#购物车
class cart(models.Model):
    class Meta:
        verbose_name_plural = '购物车'
    num = models.IntegerField(verbose_name="购买数量")
    user = models.ForeignKey("User",on_delete=models.CASCADE)
    goods = models.ManyToManyField(Goods)


#订单表
class   Order(models.Model):
    WFK = 1
    YFK = 2
    YFH = 3
    YSH = 4
    ORDER_STATUS_CHOICES = {
        (WFK,"未付款"),
        (YFK,"已付款" ),
        (YFH,"已发货"),
        (YSH,"已收货")
    }
    HUO = 1
    WX = 2
    ZFB = 3
    YIN = 4
    PAY_STATUS_CHOICES = {
        (HUO,"货到付款"),
        (ZFB,"支付宝"),
        (WX,"微信"),
        (YIN,"银行卡支付")
    }
    class Meta:
        verbose_name_plural = '订单表'
    order_no = models.CharField(max_length=30,verbose_name="订单号", null=True)
    status = models.IntegerField(choices=ORDER_STATUS_CHOICES,default=WFK,verbose_name="订单状态")
    time = models.DateTimeField(auto_now_add=True,verbose_name="下单时间")
    user_name = models.CharField(max_length=20,null=True,verbose_name="联系人")
    phone = models.CharField(max_length=30,null=True,verbose_name="联系电话")
    address = models.CharField(max_length=200,verbose_name="联系地址",null=True)
    user = models.ForeignKey("User",on_delete=models.CASCADE,verbose_name="用户名",null=True)
    total_price = models.IntegerField(verbose_name="实付款",null=True)
    pay_status = models.IntegerField(choices=PAY_STATUS_CHOICES,default=HUO,verbose_name="付款方式")


#订单详情表
class OrderDetail(models.Model):
    class Meta:
        verbose_name_plural = '订单详情表'
    good_name = models.CharField(max_length=30)
    price = models.IntegerField()
    num = models.IntegerField()
    img_url = models.CharField(max_length=100)
    total_price = models.IntegerField()
    order = models.ForeignKey("Order",on_delete=models.CASCADE)